home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 4
/
The 640 Meg Shareware Studio CD-ROM Volume IV (Data Express)(1994).ISO
/
clang
/
cujaug93.zip
/
1108093A
< prev
next >
Wrap
Text File
|
1993-06-08
|
7KB
|
201 lines
case 19: /* shape operations */
printf("\nCIPS> Enter input image name\n");
get_image_name(name);
printf("\nCIPS> Enter output image name\n");
get_image_name(name2);
get_parameters(&il, &ie, &ll, &le);
get_shape_options(low_high, &value,
&threshold, &number);
if(strncmp("thi", low_high, 3) == 0){
thinning(name, name2, the_image, out_image,
il, ie, ll, le,
value, threshold, 0);
}
if(strncmp("dnj", low_high, 3) == 0){
dilate_not_join(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold);
}
if(strncmp("ero", low_high, 3) == 0){
erosion(name, name2, the_image, out_image,
il, ie, ll, le, value, threshold);
}
if(strncmp("dil", low_high, 3) == 0){
dilation(name, name2, the_image, out_image,
il, ie, ll, le, value, threshold);
}
if(strncmp("mer", low_high, 3) == 0){
mask_erosion(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold);
}
if(strncmp("mdi", low_high, 3) == 0){
mask_dilation(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold);
}
if(strncmp("int", low_high, 3) == 0){
interior_outline(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold);
}
if(strncmp("ext", low_high, 3) == 0){
exterior_outline(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold);
}
if(strncmp("ope", low_high, 3) == 0){
opening(name, name2, the_image, out_image,
il, ie, ll, le, value, threshold,
number);
}
if(strncmp("clo", low_high, 3) == 0){
closing(name, name2, the_image, out_image,
il, ie, ll, le, value, threshold,
number);
}
if(strncmp("spo", low_high, 3) == 0){
special_opening(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold,
number);
}
if(strncmp("spc", low_high, 3) == 0){
special_closing(name, name2, the_image,
out_image, il, ie, ll, le,
value, threshold,
number);
}
if(strncmp("edm", low_high, 3) == 0){
edm(name, name2, the_image, out_image,
il, ie, ll, le, value);
}
if(strncmp("mat", low_high, 3) == 0){
edm(name, name2, the_image, out_image,
il, ie, ll, le, value);
}
break;
case 30: /* exit system */
not_finished = 0;
break;
.
.
.
/*************************************************
*
* show_menu(..
*
* This function displays the CIPS main menu.
*
**************************************************/
show_menu()
{
printf(""
"\n\n\t\t\tWelcome to CIPS"
"\n\t\tThe C Image Processing System"
"\n\t\tDwayne Phillips 1990-1993"
"\nThese are your choices:"
"\n1. Display image header 11. Image add & subtract"
"\n2. Show image numbers 12. Image cut & paste"
"\n3. Print image numbers 13. Image rotate & flip"
"\n4. Display (EGA & VGA) 14. Image scaling"
"\n5. Display or print using halftoning 15. Create blank image"
"\n6. Print using dithering 16. Image thresholding"
"\n7. Print or display histogram 17. Image segmentation"
"\n8. Edge Detection 18. Edge & gray segmentation"
"\n9. Edge Enhancement 19. Shape operations"
"\n10. Image filtering"
"\n"
"\n30. Exit system\n"
"\nEnter choice __\b\b");
} /* ends show_menu */
.
.
.
/*******************************************
*
* get_shape_options(...
*
* This function interacts with the user
* to obtain the parameters for calling
* the shape routines.
*
*******************************************/
get_shape_options(type, value, threshold, number)
char type[];
int *number, *threshold;
short *value;
{
int not_finished = 1, response;
while(not_finished){
printf("\nThe shape options are:");
printf("\n\t1. Type is %s", type);
printf("\n\t recall: EROsion DILation Mask-ERosion"
"\n\t Mask_DIlation INTerior-outline"
"\n\t EXTerior-outline THInning"
"\n\t Dilate-Not-Join OPEning"
"\n\t CLOsing SPecial-Opening"
"\n\t SPecial-Closing"
"\n\t Euclidean-Distance-Measure"
"\n\t Medial-Axis-Transform");
printf("\n\t2. value is %d", *value);
printf("\n\t3. threshold or mask type is %d",
*threshold);
printf("\n\t4. number of iterations is %d", *number);
printf("\n\t (used only in opening and closing)");
printf("\n\nEnter choice (0 = no change) _\b");
get_integer(&response);
if(response == 0){
not_finished = 0;
}
if(response == 1){
printf("\nEnter type of operation");
printf("\n\t recall: EROsion DILation Mask-ERosion"
"\n\t Mask_DIlation INTerior-outline"
"\n\t EXTerior-outline THInning"
"\n\t Dilate-Not-Join OPEning"
"\n\t CLOsing SPecial-Opening"
"\n\t SPecial-Closing"
"\n\t Euclidean-Distance-Measure"
"\n\t Medial-Axis-Transform");
printf("\n\t:");
gets(type);
}
if(response == 2){
printf("\nEnter value: ___\b\b\b");
get_integer(value);
}
if(response == 3){
printf("\nEnter threshold or mask type: ___");
printf("\b\b\b");
get_integer(threshold);
}
if(response == 4){
printf("\nEnter number of iterations: ___");
printf("\b\b\b");
get_integer(number);
}
} /* ends while not_finished */
} /* ends get_shape_options */